export default {
	data() {
		return {
			CustomNavSet: {
				active: 0,
				scrollLeft: 0,
				scrollTop: 0,
				width: 0,
				height: 0,
				items: [],
				VERTICAL: false, //是否垂直滚动
				startTime: null,
				startX: 0,
				startY: 0,
				animation: null,
				animationData:null,
				// showMore:false,
			}
		}
	},
	methods: {
		//配置隐患切换导航栏
		InitCustomNav(target = '.custom-nav-item', vertical = false) {
			this.CustomNavSet.VERTICAL = vertical;
			// 获取导航".hazard-nav-item'的高度，在点击导航触发changeNav时，使其向下滚动
			this.$nextTick(() => {
				let node = uni.createSelectorQuery().select(target);
				node?.boundingClientRect((data) => {
					if (this.CustomNavSet.VERTICAL) {
						this.CustomNavSet.height = data?.height ?? 0;
					} else {
						this.CustomNavSet.width = data?.width ?? 0;
					}
					this.ChangeCustomNav(this.CustomNavSet.active)
				}).exec()
			});
			// 创建动画实例
			this.CustomNavSet.animation = uni.createAnimation({
				timingFunction: 'ease',
				duration: 120
			})
		},
		ChangeCustomNav(index) {
			if (this.CustomNavSet.VERTICAL) {
				this.CustomNavSet.active = index;
				this.CustomNavSet.scrollTop = this.CustomNavSet.height * (index - 1); //index - 1 意思是始终保持最少会有一个显示
			} else {
				this.CustomNavSet.active = index;
				this.CustomNavSet.scrollLeft = this.CustomNavSet.width * (index - 1); //index - 1 意思是始终保持最少会有一个显示
				// console.log(index,'aaaa')
			}

		},

		// // 获取鼠标、手指初始位置
		// HandleTouchstart(e) {
		// 	this.CustomNavSet.startX = e.changedTouches[0].clientX;
		// 	this.CustomNavSet.startY = e.changedTouches[0].clientY;
		// },
		// // 计算鼠标、手指偏移方向
		// HandleTouchend(e) {

		// 	let deltaX = e.changedTouches[0].pageX - this.CustomNavSet.startX;
		// 	let deltaY = e.changedTouches[0].pageY - this.CustomNavSet.startY;
		// 	if (Math.abs(deltaX) > Math.abs(deltaY) && Math.abs(deltaX) > 60) {
		// 		if (deltaX < 0) { //往左
		// 			if (this.CustomNavSet.active == this.CustomNavSet.items.length - 1) {
		// 				this.CustomNavSet.active = 0
		// 			} else {
		// 				this.CustomNavSet.active = this.CustomNavSet.active * 1 + 1
		// 			}
		// 			if(this.ChangeNav)this.ChangeNav(this.CustomNavSet.active);
		// 		    // if(this.list)this.list  = [];
		// 			// 动画：左出右进
		// 			// this.CustomNavSet.animation.translateX('-100%').step()
		// 			// 	.opacity(0).step({
		// 			// 		duration: 10
		// 			// 	})
		// 			// 	.translateX('100%').step({
		// 			// 		duration: 10
		// 			// 	})
		// 			// 	.translateX(0).opacity(1).step()

		// 			// this.CustomNavSet.animationData = this.CustomNavSet.animation.export();
		// 			// setTimeout(() => {
		// 			// 	this.CustomNavSet.animationData = {};
						
		// 			// 	if(this.ChangeNav)this.ChangeNav(this.CustomNavSet.active);
		// 			// }, 250)
					
		// 		} else if (deltaX > 0) { //往右
		// 			if (this.CustomNavSet.active == 0) {
		// 				this.CustomNavSet.active = this.CustomNavSet.items.length - 1
		// 			} else {
		// 				this.CustomNavSet.active = this.CustomNavSet.active * 1 - 1
		// 			}
		// 			if(this.ChangeNav)this.ChangeNav(this.CustomNavSet.active);
		// 			// if(this.list)this.list  = [];
		// 			// 动画：右出左进
		// 			// this.CustomNavSet.animation.translateX('100%').step() //先横向向右移至100%，即整块移没
		// 			// 	.opacity(0).step({ //再使滑块部分透明
		// 			// 		duration: 10
		// 			// 	})
		// 			// 	.translateX('-100%').step({ //然后趁透明横向向左移至-100%
		// 			// 		duration: 10
		// 			// 	}).translateX(0).opacity(1).step() //接着横向向右移动至初始位置并恢复透明度

		// 			// this.CustomNavSet.animationData = this.CustomNavSet.animation.export()
		// 			// // 为避免uniapp动画只有第一次生效，必须延迟删除动画实例数据
		// 			// setTimeout(() => {
		// 			// 	this.CustomNavSet.animationData = {};
		// 			// 	if(this.ChangeNav)this.ChangeNav(this.CustomNavSet.active);
		// 			// }, 250)
					
		// 		} else { // 挪动距离0

		// 		}
		// 	} else {

		// 	}



			
		// }

		// @touchstart.stop="HandleTouchstart" @touchend.stop="HandleTouchend"
		// 获取鼠标、手指初始位置
		HandleTouchstart(e) {
			this.CustomNavSet.startTime = Date.now();
			this.CustomNavSet.startX = e.changedTouches[0].clientX;
			this.CustomNavSet.startY = e.changedTouches[0].clientY;
		},
		// 计算鼠标、手指偏移方向
		HandleTouchend(e) {
			const endTime = Date.now();
			const length = this.CustomNavSet.items.length - 1;
			const endX = e.changedTouches[0].clientX;
			const endY = e.changedTouches[0].clientY;
			const differ = Math.abs(endY - this.CustomNavSet.startY);
			const dirvalX = endX - this.CustomNavSet.startX;
			// 纵轴偏移量不得超过 30，否则默认页面进行滚动操作
			//differ <= 30
			if (differ <=30) {
				// 按下时长不得超过 2秒，X轴滑动距离必须大于 40
				if (endTime - this.CustomNavSet.startTime > 2000 || Math.abs(dirvalX) <= 40) {
					return
				};
				// 判断滑动方向
				if (dirvalX > 0) {
					console.log('right');
						if(this.CustomNavSet.active<=0)return;
					this.CustomNavSet.active--;
					if (this.CustomNavSet.active <= 0) this.CustomNavSet.active = 0;
				} else if (dirvalX < 0) {
					console.log('left')
					if(this.CustomNavSet.active>=length)return;
					this.CustomNavSet.active++;
					if (this.CustomNavSet.active >= length) this.CustomNavSet.active = length;
				}
				if(this.ChangeNav)this.ChangeNav(this.CustomNavSet.active);
			}
		}
		,
		onReachBottom(){
		    console.log('已加载全部数据')
		},
	}
}